package com.cskaoyan.javase.array._3exception._3length;

/**
 * 附一个长度为0的数组的经典用途：
 *
 * 假如方法的返回值是一个数组（或者其它容器），而又有无返回数据的需求，这个时候普遍有两种做法
 *
 * 返回一个长度为0的数组（或者其它容器）
 * 返回null
 * 当然以上两种方式皆可时，但是建议优先选装返回长度为0的数组，避免空指针异常。
 *
 * @since 15:01
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 {
    public static void main(String[] args) {
        int[] result = getResult(100);
        System.out.println(result[0]);
    }


    /*
        需求：
        根据方法传入的一个参数num
        如果num>0 方法返回一个整数
        如果num<0 方法返回两个整数
        如果num=0 方法不做任何结果返回

        Java方法没有办法直接返回两个变量，但是可以返回一个容器，返回多个值
        将数组容器作为返回值类型，表示返回一个数组对象
      */
    public static int[] getResult(int num) {
        // 初始状态下result数组是长度为0的数组
        int[] result = {};
        if (num > 0) {
            result = new int[]{1};
            return result;
        }
        // 代码运行到这里,num一定是小于等于0的
        if (num < 0) {
            result = new int[]{1, 2};
            return result;
        }
        // 代码运行到这里,num一定是0
        /*
            这里不需要返回任何结果
            有两个选项：
                1.返回null数组
                2.返回长度为0的数组
         */
        return result;
    }

}
